<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>15、Iterator 和 for...of循环——Iterator接口与Generator函数</title>
	</head>
	<body>
		<script type="text/javascript">
			//五、Iterator接口与Generator函数
			//Symbol.iterator方法的最简单实现，还是使用下一章要介绍的 Generator 函数。
			var myIterable = {};
			myIterable[Symbol.iterator] = function* (){
				yield 1;
				yield 2;
				yield 3;
			};
			console.log([...myIterable])  //[1,2,3]
			
			//或者采用下面的简洁写法
			let obj = {
				*[Symbol.iterator](){
					yield 'hello';
					yield 'world';
				}
			};
			for(let x of obj){
				console.log(x)
			}
			//hello
			//world
			//上面代码中，Symbol.iterator方法几乎不用部署任何代码，只要用 yield 命令给出每一步的返回值即可。
		</script>
	</body>
</html>
